<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <title>03_工厂模式</title>
  </head>

  <body>
    <!--
    方式三: 工厂模式
      * 套路: 通过工厂函数动态创建对象并返回
      * 适用场景: 需要创建多个对象
      * 问题: 对象没有一个具体的类型, 都是Object类型
    -->
    <script type="text/javascript">
      // 把 一个一个 创建对象的代码 - 封装起来 - 只要给了不同的参数，就能生产出多个 人  对象
      function createPerson(name, age, gender, height, weigth) { //返回一个对象的函数都是工厂函数
        var person = new Object()
        person.name = name
        person.age = age
        person.gender = gender
        person.height = height
        person.weight = weigth
        person.sayHi = function () {}
        return person;
      }

      let p1 = createPerson('狗蛋', 16, '男', 160, '80kg')

      function createDog(name, age, gender, height, weigth) {
        var dog = new Object()
        dog.name = name
        dog.age = age
        dog.gender = gender
        dog.height = height
        dog.weight = weigth
        dog.sayHi = function () {}
        return dog;
      }
      let d1 = createDog('旺财', 3, '公', 100, '30kg')
      console.log(p1);
      console.log(d1);
    </script>
  </body>

</html>